﻿#ifndef __AF_FACE_H__
#define __AF_FACE_H__

#include "AF_Define.h"

namespace AF
{
	//class Graphics -* ForEach
		class Face;
}
typedef AF::Face			AF_CFace;

#include "AF_Bundle.h"
#include "AF_Graphics.h"
#include "AF_Image.h"

namespace AF
{
	/// 界面类
	class _ABSTRACT Face : public Graphics
	{
	public:
		Face();
		/// 构造函数，带有界面图像
		Face(UINT nWidth, UINT nHeight);
		virtual ~Face();


		/**
		 *  @name 事件成员
		 */
		// 继承事件
// 	public:
// 		virtual bool		OnPreRender(CGraphics* pGraphics);		// 渲染之前
// 		virtual bool		OnRender()					// 渲染时

		// 定义事件
	protected:
		/// 界面初始化时
		virtual bool		OnInit(AF_CBundle* pParam)			// 界面初始化时
					{return false;}


	public:
 		Pointer			Foreach(bool isFirst);
 		UINT			GetCount();
		/// 添加绘制对象
		void			AddGraphics(Graphics* pGraphics);
		/// 添加绘制对象数组
		void			AddGraphicses(Graphics** pGraphics, COUNT nCount);
		/// 移除绘制对象
		void			RemoveGraphics(Graphics* pGraphics);
		/// 清除绘制对象
		void			CleanGraphics();

	public:
		/// 初始化
		bool			Init(Bundle* pParam = NULL);
		/// 刷新
		void			RefreshSize();

	protected:
		/// 界面图像
		Image*			m_pimgFace;

	private:
		Link<Graphics*>	m_lnkGraphicses;
	};
}

#endif